package RapiWeb;

import Utilidades.Archivo;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class JP_Cascaron extends JPanel {

    private JButton btn_ASP;
    private JButton btn_VB;
    private JButton btn_Abrir;
    private JButton btn_Nuevo;
    private JButton btn_Guardar;
    private JTextField txt_NomCascaron;
    private JTextArea txt_AreaASP;
    private JTextArea txt_AreaVB;
    private JComboBox cbx_Cascaron;
    private JF_Principal principal;

    public JP_Cascaron(JF_Principal principal) {
        this.principal = principal;
        setLayout(new BorderLayout());
        setBackground(Color.red);
        addComponentes();
        m_IniciarDatos();
        addEventos();

    }

    private void m_IniciarDatos() {
    }

    private void addComponentes() {
        JPanel p_Norte = new JPanel();
        JPanel p_Datos[] = new JPanel[3];
        for (int i = 0; i < p_Datos.length; i++) {
            p_Datos[i] = new JPanel();
            p_Datos[i].setLayout(new GridLayout(3, 1));
        }
        JLabel lbl_NomCascaron = new JLabel("Nombre Cascaron:");
        JLabel lbl_Cascaron = new JLabel("Cascaron:");
        btn_Abrir = new JButton("Abrir");
        btn_Nuevo = new JButton("Nuevo");
        btn_Guardar = new JButton("Guardar");
        txt_NomCascaron = new JTextField(20);
        String[] str_Cascarones = new String[principal.getStr_Cascaron().length / 2];
        int j = 0;
        for (int i = 0; i < principal.getStr_Cascaron().length; i++) {
            if (principal.getStr_Cascaron()[i].indexOf(".vb") < 0) {
                str_Cascarones[j] = (principal.getStr_Cascaron()[i]);
                j++;
            }
        }
        cbx_Cascaron = new JComboBox(str_Cascarones);
        JButton btn_Vacio = new JButton(" ");
        btn_Vacio.setOpaque(false);
        btn_Vacio.setBorderPainted(false);
        btn_Vacio.setEnabled(false);
        btn_Vacio.setVisible(false);

        p_Datos[0].add(lbl_Cascaron);
        p_Datos[0].add(lbl_NomCascaron);
        p_Datos[0].add(btn_Vacio);

        p_Datos[1].add(cbx_Cascaron);
        p_Datos[1].add(txt_NomCascaron);


        p_Datos[2].add(btn_Abrir);
        p_Datos[2].add(btn_Nuevo);
        p_Datos[2].add(btn_Guardar);

        for (int i = 0; i < p_Datos.length; i++) {
            p_Norte.add(p_Datos[i]);
        }

        txt_AreaASP = new JTextArea();
        txt_AreaASP.setVisible(false);
        JScrollPane sp_AreaASP = new JScrollPane(txt_AreaASP);
        txt_AreaVB = new JTextArea();
        txt_AreaVB.setVisible(false);
        JScrollPane sp_AreaVB = new JScrollPane(txt_AreaVB);
        JPanel p_Centro = new JPanel();
        p_Centro.setLayout(new GridLayout(1, 2));
        p_Centro.add(sp_AreaASP);
        p_Centro.add(sp_AreaVB);

        add(p_Norte, "North");
        add(p_Centro, "Center");

    }

    private void addEventos() {
        btn_Abrir.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                String str_NomArchivo = "" + (String) cbx_Cascaron.getSelectedItem();
                if (!str_NomArchivo.equals("null")) {
                    Archivo archivo = new Archivo();
                    archivo.m_LeerArchivo(principal.getStr_DirecCascaron() + str_NomArchivo);
                    txt_AreaASP.setText(archivo.dameContenido());
                    txt_AreaASP.setVisible(true);

                    archivo.m_LeerArchivo(principal.getStr_DirecCascaron() + str_NomArchivo + ".vb");
                    txt_AreaVB.setText(archivo.dameContenido());
                    txt_AreaVB.setVisible(true);
                    
                    str_NomArchivo = str_NomArchivo.replace(".aspx", "");
                    txt_NomCascaron.setText(str_NomArchivo);
                }


            }
        });

        btn_Nuevo.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                if (txt_NomCascaron.getText().length() > 0) {
                    txt_AreaASP.setVisible(true);
                    txt_AreaVB.setVisible(true);
                } else {
                    JOptionPane.showMessageDialog(null, "El cascaron requere un nombre");
                }
            }
        });

        btn_Guardar.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                if (txt_NomCascaron.getText().length() > 0) {
                    Archivo archivo = new Archivo();
                    String str_NomArchivoASP = principal.getStr_DirecCascaron() + txt_NomCascaron.getText() + ".aspx";
                    String str_NomArchivoVB = principal.getStr_DirecCascaron() + txt_NomCascaron.getText() + ".aspx.vb";
                    archivo.m_CrearCarpeta(principal.getStr_DirecCascaron());
                    archivo.m_CrearArchivo(str_NomArchivoASP);
                    archivo.m_CrearArchivo(str_NomArchivoVB);
                    archivo.m_SobreEscribir(str_NomArchivoASP, txt_AreaASP.getText());
                    archivo.m_SobreEscribir(str_NomArchivoVB, txt_AreaVB.getText());
                    String str_Mensaje = "Cascaron guardado.";
                    boolean bol_Agregar = true;
                    for (int i = 0; i < cbx_Cascaron.getItemCount(); i++) {
                        if ((txt_NomCascaron.getText() + ".asp").equals((String) cbx_Cascaron.getSelectedItem())) {
                            bol_Agregar = false;
                            break;
                        } else {
                            bol_Agregar = true;
                        }
                    }
                    if (bol_Agregar) {
                        if (cbx_Cascaron.getItemCount() > 0) {
                            cbx_Cascaron.insertItemAt(txt_NomCascaron.getText() + ".asp", cbx_Cascaron.getItemCount() - 1);
                        } else {
                            cbx_Cascaron.insertItemAt(txt_NomCascaron.getText() + ".asp", 0);
                        }
                    }
                    JOptionPane.showMessageDialog(null, str_Mensaje);
                } else {
                    JOptionPane.showMessageDialog(null, "El Cascaron requere un nombre");
                }
            }
        });
        /*
         btn_VB.addActionListener(new ActionListener() {
         @Override
         public void actionPerformed(ActionEvent e) {
         txt_AreaASP.setVisible(false);
         txt_AreaVB.setVisible(true);
         }
         });
        
         btn_ASP.addActionListener(new ActionListener() {
         @Override
         public void actionPerformed(ActionEvent e) {
         txt_AreaASP.setVisible(true);
         txt_AreaVB.setVisible(false);
         }
         });
         */

    }
}
